package com.sky.alogrithm.chapter02_sort;


import static com.sky.alogrithm.chapter02_sort.Example.each;
import static com.sky.alogrithm.chapter02_sort.Example.less;

/**
 * 选择排序
 * 原理：将每一张牌插入到其他已经有序的牌中的适当位置，为了给要插入的元素
 * 腾出空间，需要将其余所有元素在插入之前都向右移动一位
 *
 * 特点： 1. 插入排序所需的时间取决于输入中元素的初始顺序
 *
 * 缺点：
 */
public class Insertion {

    public static void sort(Comparable[] a){
        int N = a.length;
        for(int i = 1; i < N; i++){
            for(int j = i; j > 0 && less(a[j], a[j-1]); j--){
                each(a, j, j - 1);
            }
        }
    }
}
